查看原文
其他

VPGTrans: 用10%的成本定制一个你自己的GPT-4多模态对话模型

张傲,费豪等 PaperWeekly 2023-09-02



一句话介绍:最近的多模态(对话)大模型将基于文本的 ChatGPT 的强大能力扩展到了多模态输入,实现强大的多模态语义理解,比如最近的 GPT-4、BLIP-2、Flamingo 等。但咱们普通玩家训练一个多模态 GPT 代价非常昂贵。本工作提出一个 VPGTrans 框架,帮助小伙伴们实现极低成本训练一个高性能多模态大模型。


论文题目:
VPGTrans: Transfer Visual Prompt Generator across LLMs

论文作者:

张傲,费豪,姚远,吉炜,黎力,刘知远,Chua Tat-Seng

作者单位:

新加坡国立大学,清华大学

多模态对话模型Demo:

https://vpgtrans.github.io/

论文链接:

https://arxiv.org/pdf/2305.01278.pdf

代码链接:

https://github.com/VPGTrans/VPGTrans


本工作亮点摘要:

1. 极低训练成本:通过我们提出的 VPGTrans 方法,可以快速(少于 10% 训练时间)将已有的多模态对话模型的视觉模块迁移到新的语言模型,且达到类似或更优效果。比如,相比于从头训练视觉模块,我们可以将 BLIP-2 FlanT5-XXL 的训练开销从 19000+ 人民币缩减到不到 1000 元


▲ 图1:基于我们的VPGTrans方法的BLIP-2训练开销缩减对比


2. 多模态大模型定制:通过我们的 VPGTrans 框架可以根据需求为各种新的大语言模型灵活添加视觉模块。比如我们在 LLaMA-7B 和 Vicuna-7B 基础上制作了 VL-LLaMA 和 VL-Vicuna。


3. 开源多模态对话模型:我们开源了 VL-Vicuna,类 GPT4 多模态对话模型,可实现高质量的多模态对话:


▲ 图2:VL-Vicuna的交互实例




动机介绍


1.1 背景


2023 年是 AI 元年,以 ChatGPT 为代表的大语言模型(LLM)大火。LLM 除了在自然语言领域显示出巨大的潜力之外,也开始逐渐辐射到其他相关领域。比如,LLM 在多模态理解领域掀起了一股从传统预训练视觉语言模型(VLM)到基于大语言模型的视觉语言模型(VL-LLM)的变革。通过为 LLM 接入视觉模块,VL-LLM 可以继承已有 LLM 的知识,零样本泛化能力,推理能力和规划能力等。相关模型有 BLIP-2 [1], Flamingo [2], PALM-E 等。


▲ 图3:常用的VL-LLM架构


现有的常用的 VL-LLM 基本采取图 3 所示的架构:在一个基座 LLM 基础上训练一个视觉 soft prompt 生成模块(Visual Prompt Generator, VPG),以及一个进行维度变换的线性层(Projector)。在参数规模上,LLM 一般占主要部分(比如 11B),VPG 占次要部分(比如 1.2B),Projector 最小(4M)。在训练过程中,LLM 参数一般不会被更新,或者仅仅更新非常少量的参数。可训练参数主要来自于 VPG 和 projector。


1.2 动机


实际上,即便基座 LLM 的参数冻结不训,但由于 LLM 的大参数量,训练一个 VL-LLM 的关键开销依然在于加载基座LLM。因此训练一个 VL-LLM 依然无法避免极大的计算代价。比如,要得到 BLIP-2(基座 LLM 为 FlanT5-XXL)需要付出超过 600 个小时的 A100 训练时长。如果租用亚马逊的 A100-40G 机器,大概需要将近 2 万元人民币的费用。既然从零训练一个 VPG 代价如此昂贵,那么我们开始思考能否把一个已有的 VPG 迁移到新的 LLM 上来节省开销。


▲ 图4:VPG迁移: 跨LLM大小迁移和跨LLM类型迁移


如图4所示,我们主要探索了两种类型的 VPG 的迁移:


(1)跨 LLM 大小迁移(TaS):比如从 OPT-2.7B 到 OPT-6.7B。


(2)跨 LLM 类型迁移(TaT):比如从 OPT 到 FlanT5


其中 TaS 的意义在于:在 LLM 相关科研中,我们通常需要在小 LLM 上调参,再扩展到大 LLM。有了 TaS,我们可以在调参之后,把小 LLM上已经训好的 VPG 直接迁移到大 LLM 上。TaT 的意义在于:不同功能种类的 LLM 层出不穷,比如今天有了 LLaMA,明天又有了 Alpaca 和 Vicuna。TaT 可以让我们利用已有的 VPG 快速为新语言模型添加视觉感知能力。


1.3 贡献


(1)提出高效的方法:我们首先通过一系列的探究实验,探究了影响 VPG 迁移效率的关键因素。根据探索实验发现,我们提出了一个两阶段的高效迁移框架VPGTrans。该框架可以大幅度缩减训练 VL-LLM 所需的计算开销和需要的训练数据。比如,相比于从头训练,我们通过 BLIP-2 OPT-2.7B 到 6.7B 的 VPG 迁移,可以仅用大约 10% 的数据和计算时间就达成各个数据集相似或更好的效果(图1)训练花销从 17901 人民币到 1673 元。


(2)得到有趣的发现:我们同时提供了 TaS 和 TaT 场景下一些有趣的发现,并尝试给出解释:a)TaS 场景下,使用 VPGTrans 从小到大迁移不会影响最终模型效果。b)TaS 场景下,越小的语言模型上训练的 VPG,迁移到大模型时效率越高,最终效果越好。c)TaT 场景下,越小的模型之间迁移的 gap 越大。在我们验证实验中,OPT350M 和 FlanT5-base 使用 VPGTrans 互相迁移几乎和从头训练一样慢。


(3)实现社区回馈:我们使用 VPGTrans 得到了两个新的 VL-LLMs:VL-LLaMA 和 VL-Vicuna,并开源在了社区上。其中 VL-Vicuna 实现了类 GPT4 的高质量的多模态对话。欢迎小伙伴尝试:

https://vpgtrans.github.io/.




高效率的VPG迁移方案: VPGTrans


首先我们进行一系列的探索验证实验,分析如何最大化对于 VPG 的迁移效率。接着我们基于这些重要观察提出一个解决方案。


2.1 探究实验


我们选取 BLIP-2 架构作为我们的基础模型,预训练语料采用 COCO 和 SBU,总共 1.4M 图文对。下游任务采用 COCO Caption, NoCaps, VQAv2, GQA 和 OK-VQA 的 zero-shot 设定进行评测(对 caption 任务并非严格 zero-shot)。下面是我们的关键发现:


(1)直接继承一个训练好的 VPG 可以加速收敛,但效果有限:我们发现,直接迁移一个 LLM 上训练好的 VPG 到大 LLM 可以加速模型收敛,但加速效果有限,且收敛后模型效果相比于从头训练 VPG 会掉点(图 5 的 VQAv2、GQA 蓝线最高点均低于橘线)我们猜测,这个掉点是由于随机初始化的 projector 会在训练起始阶段损伤 VPG 中已有的视觉感知能力。


▲ 图5:VPG inherit(蓝线):直接继承训练好的 VPG。train from scratch(橘线):从头训练 VPG。only linear(绿线):只训练 linear projector 不训练 VPG。


(2)先 warm-up 训练 projector 可以防止掉点,且进一步加速收敛:于是,我们固定住 VPG 和 LLM,先 warm-up 训练 projector 3 个 epoch,再解冻 VPG 进行下一步训练。我们发现,这样不仅仅可以避免掉点情况,还能够进一步加速 VPG 收敛(图6)。但值得强调的是,由于训练的主要开销在 LLM(参数巨多),仅仅训练 projector 的开销不会比同时训练 VPG 和 projector 的开销小太多所以,我们开始探究加速 projector warm-up 的关键技术。


▲ 图6:先 warm-up 训练 projector 可以防止掉点+加速收敛


(3)词向量转化器初始化可以加速 projector warm-up:首先,VPG 是通过把图像转化为 LLM 可以理解的 soft prompt 来产生效果的。而 soft prompt 的使用方式和词向量其实是非常相似的,都是直接输入语言模型来提示模型产生对应内容。

所以,我们使用词向量来作为 soft prompt 的一个代理,训练了一个 的词向量转化器(一个线性层)。然后,我们将词向量转化器和 上的 projector 融合作为 projector 的初始化。通过这个初始化,我们可以将 projector 的 warm-up 训练由 3 个 epoch 减为 2 个 epoch。

(4)projector 可以在超大学习率下快速收敛:我们进一步实验发现,projector 由于其参数量较少,可以使用 5 倍的正常学习率进行训练而不崩溃。通过 5 倍学习率的训练,projector warm-up 可以一步被缩短到 1 个 epoch


(5)一个附加发现:虽然 projector warm-up 很重要,但仅训练 projector 是不够的。尤其在 caption 任务上面,仅仅训练 projector的效果要比同时训练 VPG 的效果差一截(图 5 绿线在 COCO Caption 和 NoCaps 均远低于蓝线)。这也就意味着,仅仅训练 projector 会导致欠拟合,也就是无法充分对齐到训练数据。


2.2 我们所提出的方法


▲ 图7:VPGTrans 框架:(1)一阶段:projector 的 warm-up(2)二阶段:整体微调


如图 7 所示,我们的方法共分为两个阶段:


(1)第一阶段:我们首先使用词向量转化器和原有 projector 进行融合作为新 projector 的初始化,然后用 5 倍学习率训练新 projector一个epoch。


(2)第二阶段:直接正常训练 VPG 和 projector。




实验结果


3.1 加速比


▲ 表1:我们的 VPGTrans 的相比于从头训练在各个数据集的加速比


如表1所示,我们测试了不同迁移类型下,VPGTrans 在不同数据集上的加速比。VPGTrans 在某指定数据集 A 上的加速比是通过从头训练达到 A 上最佳效果 a 的轮数除以 VPGTrans 在 A 上效果超过 a 的最小训练轮数得到。


比如,从头在 OPT-2.7B 上训练 VPG,在 COCO caption 达到最佳效果需要 10 个 epoch,但从 OPT-125M 迁移 VPG 到 OPT-2.7B,仅需 1 个 epoch 就能达到该最佳效果。则加速比为 10/1=10 倍。我们可以看到,无论是在 TaS 还是在 TaT 场景下,我们的 VPGTrans 都可以实现稳定的加速。


3.2 有趣的发现


我们选取了一个比较有趣的发现进行了说明,其他更多更有意思的发现请参照我们的论文。


TaS 场景下,越小的语言模型上训练的 VPG,迁移起来效率越高,最后模型效果越好。参考表 1,我们可以发现 OPT-1.3B 到 OPT-2.7B 的加速比要远小于 OPT-125M、OPT-350M 到 OPT-2.7b 的加速比。我们尝试提供了一个解释:一般越大的语言模型,由于其文本空间的维度更高,会更容易损害 VPG(VPG一般都是类似于 CLIP 的预训练模型)本身的视觉感知能力。我们通过类似于 linear probing 的方式进行了验证:


▲ 图8:仅训练linear projector层的跨LLM大小迁移(模拟linear probing)


如图 8 所示,我们进行了 OPT-125M,350M,1.3B,2.7B 之间的跨 LLM 大小的迁移。在实验中,为了公平对比不同模型大小下训练过的 VPG 的视觉感知能力,我们固定住 VPG 的参数仅仅训练 linear projector 层。我们选取了  COCO Caption 上的 SPICE 指标作为视觉感知能力的衡量手段。不难发现,对于每一个给定的 ,几乎都符合 越小,最终 SPICE 越高的一个现象。

3.3 大规模实验


前文实验主要是在小规模场景下验证猜想。为了证明我们的方法的有效性,我们模拟 BLIP-2 的预训练过程进行了大规模实验:


▲ 表2:真实场景下的大规模实验结果


如表 2 所示,我们的 VPGTrans 在大规模场景下依然有效。通过 OPT-2.7B 到 OPT-6.7B 的迁移,我们仅用 10.8% 的数据和不到 10% 的训练时长达到了相似或更优的效果。尤其是,我们的方法在 BLIP-2 以 FlanT5XXL 为基座 LLM 下实现了 4% 的训练成本控制




定制您的VL-LLMs


我们的 VPGTrans 可以快速为任意新的 LLMs 添加视觉感知模块,从而得到一个全新的高质量 VL-LLM。在本工作,我们额外训练了一个 VL-LLaMA 和一个 VL-Vicuna。其中 VL-LLaMA 的效果如下:


▲ 表3:VL-LLaMA的效果展示


同时,我们的 VL-Vicuna 可以进行类 GPT4 的多模态对话。我们和 MiniGPT-4 进行了简单的比较:




总结


在这项工作中,我们对 VPG 在 LLM 之间的可迁移性问题进行了全面调查。我们首先探讨了最大化迁移效率的关键因素。基于关键观察,我们提出了一种新颖的两阶段迁移框架,即 VPGTrans。它可以在显著降低训练成本的同时,实现相当或更好的性能。通过 VPGTrans,我们实现了从 BLIP-2 OPT 2.7B 到 BLIP-2 OPT 6.7B 的 VPG 迁移。相较于从零开始连接 VPG 到 OPT 6.7B,VPGTrans 仅需 10.7% 训练数据和不到10%的训练时长。

此外,我们展示并讨论了一系列有趣发现及其背后的可能原因。最后,我们通过训练 VL-LLaMA 和 LL-Vicuna,展示了我们的 VPGTrans 在定制新的 VL-LLM 方面的实际价值。



更多阅读





#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编



🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧


·
·

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存